home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload Trio 2 / Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO / dir31 / vtsrc12b.zip / LIB / HEXCONVE.PAS < prev    next >
Pascal/Delphi Source File  |  1993-02-25  |  3KB  |  84 lines

  1. {****************************************************************************}
  2. {                                                                            }
  3. { MODULE:         HexConversions                                             }
  4. {                                                                            }
  5. { DESCRIPTION:    Implements data conversion functions number -> string.     }
  6. {                                                                            }
  7. { AUTHOR:         Juan Carlos Arévalo                                        }
  8. {                                                                            }
  9. { MODIFICATIONS:  Nobody (yet ;-).                                           }
  10. {                                                                            }
  11. { HISTORY:        01-Oct-1992 First documentation.                           }
  12. {                 17-Oct-1992 Documentation finished.                        }
  13. {                                                                            }
  14. { (C) 1992 VangeliSTeam                                                      }
  15. {____________________________________________________________________________}
  16.  
  17. UNIT HexConversions;
  18.  
  19. INTERFACE
  20.  
  21. TYPE
  22.   THexPString = STRING[9]; { Hex POINTER string. }
  23.   THexWString = STRING[4]; { Hex WORD    string. }
  24.   THexBString = STRING[2]; { Hex BYTE    string. }
  25.   THexNString = CHAR;      { Hex nibble  string. }
  26.  
  27.  
  28.  
  29.  
  30. FUNCTION HexPtr  (p: POINTER) : THexPString; { Converts POINTER to hexadecimal. }
  31. FUNCTION HexWord (w: WORD)    : THexWString; { Converts WORD    to hexadecimal. }
  32. FUNCTION HexByte (b: BYTE)    : THexBString; { Converts BYTE    to hexadecimal. }
  33. FUNCTION HexDigit(d: BYTE)    : THexNString; { Converts nibble  to hexadecimal. }
  34.  
  35.  
  36.  
  37.  
  38. IMPLEMENTATION
  39.  
  40.  
  41.  
  42.  
  43. {----------------------------------------------------------------------------}
  44. { Hex conversion routines.                                                   }
  45. {____________________________________________________________________________}
  46.  
  47. CONST
  48.   HexTabla : STRING[16] = '0123456789ABCDEF'; { Hex chars table. }
  49.  
  50.  
  51. FUNCTION HexPtr(p: POINTER) : THexPString;
  52.   BEGIN
  53.     HexPtr := HexWord(SEG(p^)) + ':' + HexWord(OFS(p^));
  54.   END;
  55.  
  56.  
  57. FUNCTION HexWord(w: WORD) : THexWString;
  58.   BEGIN
  59.     HexWord[0] := #4;
  60.     HexWord[1] := HexTabla[ (w SHR 12)         + 1];
  61.     HexWord[2] := HexTabla[((w SHR  8) AND $F) + 1];
  62.     HexWord[3] := HexTabla[((w SHR  4) AND $F) + 1];
  63.     HexWord[4] := HexTabla[( w         AND $F) + 1];
  64.   END;
  65.  
  66.  
  67. FUNCTION HexByte(b: BYTE) : THexBString;
  68.   BEGIN
  69.     HexByte[0] := #2;
  70.     HexByte[1] := HexTabla[((b SHR  4) AND $F) + 1];
  71.     HexByte[2] := HexTabla[( b         AND $F) + 1];
  72.   END;
  73.  
  74.  
  75. FUNCTION HexDigit(d: BYTE) : THexNString;
  76.   BEGIN
  77.     HexDigit := HexTabla[(d AND $F) + 1];
  78.   END;
  79.  
  80.  
  81.  
  82.  
  83. END.
  84.